<?php

namespace common\models\log;

use common\helpers\DateHelper;
use Yii;

/**
 * This is the model class for table "dt_member_operate_log".
 *
 * @property int $id
 * @property int $type 类型【1001导医登记、1010患者编辑、1011患者编辑备注、1012新增回访、1013批量分配、1014分配客服、1015中转库新增患者】
 * @property string $type_name 类型名称
 * @property int $relation_id 关联ID
 * @property string $method 提交类型
 * @property string $url 提交url
 * @property string $user_agent agent信息
 * @property string $ip ip地址
 * @property string $content 动作内容 - 记录详细信息
 * @property int $member_id 操作人ID
 * @property string $member_name 操作人姓名
 * @property string|null $created_time 添加时间
 */
class MemberOperateLog extends \common\models\BaseModel
{
    const TYPE_PATIENT_GUIDE_CREATE = 1001;// 导医登记
    const TYPE_PATIENT_EDIT = 1010;// 患者编辑
    const TYPE_PATIENT_EDIT_REMAKR = 1011;// 患者编辑备注
    const TYPE_PATIENT_CALLBACK_CREATE = 1012;// 新增回访
    const TYPE_PATIENT_ALLOT_BATCH = 1013;// 批量分配
    const TYPE_PATIENT_ALLOT_KF = 1014;// 分配客服
    const TYPE_PATIENT_HOSPITAL_CREATE = 1015;// 中转库新增患者【存在患者则更新】

    public static $types = [
        self::TYPE_PATIENT_GUIDE_CREATE => '导医登记',
        self::TYPE_PATIENT_EDIT => '患者编辑',
        self::TYPE_PATIENT_EDIT_REMAKR => '患者编辑备注',
        self::TYPE_PATIENT_CALLBACK_CREATE => '新增回访',
        self::TYPE_PATIENT_ALLOT_BATCH => '批量分配',
        self::TYPE_PATIENT_ALLOT_KF => '分配客服',
        self::TYPE_PATIENT_HOSPITAL_CREATE => '中转库新增患者',
    ];

    public function beforeSave($insert)
    {
        if (parent::beforeSave($insert)) {
            if ($insert) {
                $this->type_name = self::$types[$this->type] ?? '';
                $this->created_time = DateHelper::timestampToDate(time());
            }
            return true;
        }
        return false;
    }

    public function behaviors()
    {
        return [];
    }

    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'by_member_operate_log';
    }

    /**
     * @return \yii\db\Connection the database connection used by this AR class.
     */
    public static function getDb()
    {
        return Yii::$app->get('db6');
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['type', 'relation_id', 'member_id'], 'integer'],
            [['content'], 'required'],
            [['content'], 'string'],
            [['created_time'], 'safe'],
            [['type_name'], 'string', 'max' => 50],
            [['method'], 'string', 'max' => 20],
            [['url'], 'string', 'max' => 1000],
            [['user_agent'], 'string', 'max' => 255],
            [['ip', 'member_name'], 'string', 'max' => 100],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'type' => '类型【1001导医登记、1010患者编辑、1011患者编辑备注、1012新增回访、1013批量分配、1014分配客服、1015中转库新增患者】',
            'type_name' => '类型名称',
            'relation_id' => '关联ID',
            'method' => '提交类型',
            'url' => '提交url',
            'user_agent' => 'agent信息',
            'ip' => 'ip地址',
            'content' => '动作内容 - 记录详细信息',
            'member_id' => '操作人ID',
            'member_name' => '操作人姓名',
            'created_time' => '添加时间',
        ];
    }
}
